package com.iteaj.iot.tools.db;

import com.iteaj.iot.handle.proxy.ProtocolHandleProxy;

import java.util.List;

/**
 * 数据管理
 * @param <P>
 */
public interface DBManager<P extends ProtocolHandleProxy> {

    /**
     * @param key
     * @return 返回数据存储元信息
     */
    DBMeta getDBMeta(Object key);

    /**
     * 单条数据入库
     * @param entity
     * @param meta 用于获取 {@link DBMeta}
     * @see #getDBMeta(Object)
     * @return
     */
    int insert(Object meta, Object entity);

    /**
     * 批量数据入库
     * @param meta 用于获取 {@link DBMeta}
     * @param entities
     * @see #getDBMeta(Object)
     * @return
     */
    int batchInsert(Object meta, List<Object> entities);

    /**
     * 执行
     * @param entity
     * @param handle
     */
    void execute(Object entity, P handle);
}
